home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 19.zip / BS1 part 19 / Lattice C disk 4.adf / Compiler_Headers / graphics / clip.h next >
C/C++ Source or Header  |  1988-10-25  |  2KB  |  78 lines

  1. #ifndef GRAPHICS_CLIP_H
  2. #define GRAPHICS_CLIP_H
  3. /*
  4. **    $Filename: graphics/clip.h $
  5. **    $Release: 1.3 $
  6. **
  7. **    
  8. **
  9. **    (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef GRAPHICS_GFX_H
  14. #include <graphics/gfx.h>
  15. #endif
  16. #ifndef EXEC_SEMAPHORES_H
  17. #include <exec/semaphores.h>
  18. #endif
  19.  
  20. /* structures used by and constructed by windowlib.a */
  21. /* understood by rom software */
  22.  
  23. #define NEWLOCKS
  24.  
  25. struct Layer
  26. {
  27.     struct  Layer *front,*back;        /* ignored by roms */
  28.     struct  ClipRect    *ClipRect;  /* read by roms to find first cliprect */
  29.     struct  RastPort    *rp;        /* ignored by roms, I hope */
  30.     struct  Rectangle    bounds;        /* ignored by roms */
  31.     UBYTE    reserved[4];
  32.     UWORD    priority;                /* system use only */
  33.     UWORD   Flags;            /* obscured ?, Virtual BitMap? */
  34.     struct  BitMap *SuperBitMap;
  35.     struct  ClipRect *SuperClipRect; /* super bitmap cliprects if 
  36.                     VBitMap != 0*/
  37.                   /* else damage cliprect list for refresh */
  38.     APTR    Window;            /* reserved for user interface use */
  39.     SHORT   Scroll_X,Scroll_Y;
  40.     struct    ClipRect *cr,*cr2,*crnew;  /* used by dedice */
  41.     struct    ClipRect *SuperSaveClipRects; /* preallocated cr's */
  42.     struct    ClipRect *_cliprects;    /* system use during refresh */
  43.     struct    Layer_Info  *LayerInfo; /* points to head of the list */
  44.     struct    SignalSemaphore Lock;
  45.     UBYTE    reserved3[8];
  46.     struct Region *ClipRegion;
  47.     struct Region *saveClipRects;    /* used to back out when in trouble*/
  48.     UBYTE    reserved2[22];
  49.     /* this must stay here */
  50.     struct  Region  *DamageList;    /* list of rectangles to refresh 
  51.                        through */
  52. };
  53.  
  54. struct ClipRect
  55. {
  56.     struct  ClipRect *Next;        /* roms used to find next ClipRect */
  57.     struct  ClipRect *prev;        /* ignored by roms, used by windowlib */
  58.     struct  Layer   *lobs;        /* ignored by roms, used by windowlib */
  59.     struct  BitMap  *BitMap;
  60.     struct  Rectangle    bounds;        /* set up by windowlib, used by roms */
  61.     struct  ClipRect *_p1,*_p2;        /* system reserved */
  62.     LONG    reserved;            /* system use */
  63. #ifdef NEWCLIPRECTS_1_1
  64.     LONG    Flags;            /* only exists in layer allocation */
  65. #endif
  66. };
  67.  
  68. /* internal cliprect flags */
  69. #define CR_NEEDS_NO_CONCEALED_RASTERS  1
  70.  
  71. /* defines for code values for getcode */
  72. #define ISLESSX 1
  73. #define ISLESSY 2
  74. #define ISGRTRX 4
  75. #define ISGRTRY 8
  76.  
  77. #endif    /* GRAPHICS_CLIP_H */
  78.